function Circle(radius) {
	this.r = radius;
}

Circle.PI = 3.14159;

function Circle_area() {
	return Circle.PI * this.r * this.r;
}

Cricle.prototype.area = Circle_area;

function Circle_max(a, b) {
	if(a.r > b.r)
		return a;
	else 
		return b;
}

Circle.max = Circle_mas;

var c = new Circle(1.0);
c.r = 2.2;
var a = c.area();
var x = Math.exp(Circle.PI);
var d = new Circle(1.2);
var bigger = Circle.max(c, d);

//------//
function Complex(real, imaginary) {
	this.x = real;
	this.y = imaginary;
}

Complex.prototype.magnitude = function() {
	return Math.sqrt(this.x * this.x + this.y * this.y);
};

Complex.prototype.negative = function() {
	return new Complex(-this.x, -this.y);
};

Complex.prototype.toString = function() {
	return "{" + this.x + ", " + this.y + "}";
};

Complex.prototype.valueOf = function() {
	return this.x;
};

Complex.add = function(a, b) {
	return new Complex(a.x + b.x, a.y + b.y);
};

Complex.substract = function(a, b) {
	return new Complex(a.x - b.x, a.y - b.y);
};

Complex.multiply = function(a, b) {
	return new Complex(a.x * b.x - a.y * b.y, a.x * b.y + a.y *b.x);
};

Complex.zero = new Complex(0, 0);
Complex.one = new Complex(1, 0);
Complex.i = new Complex(0, 1);

//------//
function MoreComplex(real, imaginary) {
	this.x = real;
	this.y = imaginary;
}

MoreComplex.prototype = new Complex(0, 0);

MoreComplex.prototype.swap = function() {
	var tmp = this.x;
	this.x = this.y;
	this.y = tmp;
};

MoreComplex.prototype.constructor = MoreComplex;